﻿using BCCommon;
using BCDto.Sim.Admin.Admin;
using BCDto.IM.LeaveMessageRecord;
using System;
using System.Collections.Generic;
using System.Text;

namespace BCService.IM.LeaveMessageRecordService
{
    /// <summary>
    /// 留言记录服务接口
    /// </summary>
    public interface ILeaveMessageRecordService
    {
        /// <summary>
        /// 添加留言记录
        /// </summary>
        /// <param name="leaveMessageRecordDto">留言记录</param>
        /// <returns></returns>
        LeaveMessageRecordDto Add(LeaveMessageRecordDto leaveMessageRecordDto);
        /// <summary>
        /// 更新回复信息
        /// </summary>
        /// <param name="leaveMessageRecordId">留言记录Id</param>
        /// <param name="leaveMessageRecordPutDto">留言记录</param>
        /// <returns></returns>
        LeaveMessageRecordDto UpdateReplyInfo(long leaveMessageRecordId,LeaveMessageRecordPutDto leaveMessageRecordPutDto);
        /// <summary>
        /// 更新留言为已读
        /// </summary>
        /// <param name="leaveMessageRecordId">留言记录Id</param>
        /// <param name="current">当前登录员工</param>
        /// <returns></returns>
        LeaveMessageRecordDto UpdateIsRead(long leaveMessageRecordId, AdminDto current);
        /// <summary>
        /// 获取留言列表
        /// </summary>
        /// <param name="isRead">是否已读</param>
        /// <param name="isReply">是否已回复</param>
        /// <param name="replyAdminName">回复管理员登录名称</param>
        /// <param name="start">开始时间</param>
        /// <param name="end">结束时间</param>
        /// <param name="ascending">排序</param>
        /// <param name="pageIndex">当前页码</param>
        /// <param name="pageSize">每页数据条数</param>
        /// <returns></returns>
        PageableList<LeaveMessageRecordDto> Query(bool? isRead, bool? isReply, string replyAdminName, DateTime? start, DateTime? end, bool? ascending, int pageIndex, int pageSize);
        /// <summary>
        /// 删除一段时间的留言记录
        /// </summary>
        /// <param name="start">开始时间</param>
        /// <param name="end">结束时间</param>
        void Delete(DateTime? start, DateTime? end);
        /// <summary>
        /// 客服今日统计
        /// </summary>
        /// <returns></returns>
        LeaveMessageCountDto QueryCount();
    }
}
